//package com.teleinfo.barcode_scan_plugin;
//
//import android.app.Activity;
//import android.content.Context;
//import android.content.Intent;
//import android.graphics.Canvas;
//import android.graphics.Color;
//import android.graphics.Paint;
//import android.graphics.Rect;
//import android.graphics.drawable.BitmapDrawable;
//import android.os.Bundle;
//import androidx.annotation.Nullable;
//import android.util.AttributeSet;
//import android.util.TypedValue;
//import android.view.KeyEvent;
//import android.view.Menu;
//import android.view.MenuItem;
//import android.view.ViewGroup;
//
//import com.google.zxing.Result;
//
//import me.dm7.barcodescanner.core.IViewFinder;
//import me.dm7.barcodescanner.core.ViewFinderView;
//import me.dm7.barcodescanner.zxing.ZXingScannerView;
//
//public class BarcodeScannerActivity extends BaseScannerActivity implements ZXingScannerView.ResultHandler {
//
//    private ZXingScannerView mScannerView;
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_custom_view_finder_scanner);
//        setupToolbar();
//        ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
//        mScannerView = new ZXingScannerView(this) {
//            @Override
//            protected IViewFinder createViewFinderView(Context context) {
//                return new CustomViewFinderView(context);
//            }
//        };
//        contentFrame.addView(mScannerView);
//    }
//
//    @Override
//    public void onResume() {
//        super.onResume();
//        mScannerView.setResultHandler(this);
//        mScannerView.startCamera();
//    }
//
//    @Override
//    public void onPause() {
//        super.onPause();
//        mScannerView.stopCamera();
//    }
//
//    @Override
//    public boolean onCreateOptionsMenu(Menu menu) {
//        if(mScannerView.getFlash()) {
//            MenuItem item = menu.add(0, 200, 0, "补光关");
//            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
//        } else {
//            MenuItem item = menu.add(0, 200, 0, "补光开");
//            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
//        }
//        return super.onCreateOptionsMenu(menu);
//    }
//
//    @Override
//    public boolean onKeyDown(int keyCode, KeyEvent event) {
//        if (keyCode == KeyEvent.KEYCODE_BACK) {
//            Intent intent = new Intent();
//            intent.putExtra("SCAN_RESULT", "");
//            setResult(Activity.RESULT_OK, intent);
//            finish();
//        }
//        return super.onKeyDown(keyCode, event);
//    }
//
//    @Override
//    public boolean onOptionsItemSelected(MenuItem item) {
//        if (item.getItemId() == 200) {
//            mScannerView.setFlash(!mScannerView.getFlash());
//            this.invalidateOptionsMenu();
//            return true;
//        }
//        return super.onOptionsItemSelected(item);
//    }
//
//    @Override
//    public void handleResult(Result result) {
//        Intent intent = new Intent();
//        intent.putExtra("SCAN_RESULT", result.toString());
//        setResult(Activity.RESULT_OK, intent);
//        finish();
//    }
//
//    private static class CustomViewFinderView extends ViewFinderView {
//        public static final String TRADE_MARK_TEXT = "ZXing000";
//        public static final int TRADE_MARK_TEXT_SIZE_SP = 40;
//        public final Paint PAINT = new Paint();
//        private int mYmove;
//
//        public CustomViewFinderView(Context context) {
//            super(context);
//            init();
//        }
//
//        public CustomViewFinderView(Context context, AttributeSet attrs) {
//            super(context, attrs);
//            init();
//        }
//
//        @Override
//        public void setLaserColor(int laserColor) {
//            super.setLaserColor(laserColor);
//        }
//
//        private void init() {
//            PAINT.setColor(Color.WHITE);
//            PAINT.setAntiAlias(true);
//            float textPixelSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
//                    TRADE_MARK_TEXT_SIZE_SP, getResources().getDisplayMetrics());
//            PAINT.setTextSize(textPixelSize);
//            setSquareViewFinder(false);
//            setLaserEnabled(false);
//            setBorderStrokeWidth(8);
//            setBorderColor(Color.argb(200, 0, 180, 0));
//            setBorderCornerRadius(18);
////            setViewFinderOffset(30);
//        }
//
//        @Override
//        public void drawLaser(Canvas canvas) {
//            Rect lineRect = new Rect();
//            Rect framingRect = getFramingRect();
//            if (mYmove == 0)
//                mYmove = framingRect.top+30;
//            mYmove += 8;
//            if (mYmove >= framingRect.bottom-30) mYmove = framingRect.top+30;
//            lineRect.left = framingRect.left;
//            lineRect.right = framingRect.right;
//            lineRect.top = mYmove;
//            lineRect.bottom = lineRect.top + 24;
//            canvas.drawBitmap(((BitmapDrawable) (getResources().getDrawable(R.drawable.scan_line))).getBitmap(), null, lineRect, mLaserPaint);
//
//            postInvalidateDelayed(30,
//                    framingRect.left,
//                    framingRect.top,
//                    framingRect.right,
//                    framingRect.bottom);
//
//        }
//
//        @Override
//        public void setViewFinderOffset(int offset) {
//            super.setViewFinderOffset(offset);
//        }
//
//        @Override
//        public void setBorderColor(int borderColor) {
//            super.setBorderColor(borderColor);
//        }
//
//        @Override
//        public void setBorderStrokeWidth(int borderStrokeWidth) {
//            super.setBorderStrokeWidth(borderStrokeWidth);
//        }
//
//        @Override
//        public void setLaserEnabled(boolean isLaserEnabled) {
//            super.setLaserEnabled(isLaserEnabled);
//        }
//
//        @Override
//        public void setBorderCornerRadius(int borderCornersRadius) {
//            super.setBorderCornerRadius(borderCornersRadius);
//        }
//
//        @Override
//        public void onDraw(Canvas canvas) {
//            super.onDraw(canvas);
////            drawTradeMark(canvas);
//            drawLaser(canvas);
//        }
//
//        private void drawTradeMark(Canvas canvas) {
//            Rect framingRect = getFramingRect();
//            float tradeMarkTop;
//            float tradeMarkLeft;
//            if (framingRect != null) {
//                tradeMarkTop = framingRect.bottom + PAINT.getTextSize() + 10;
//                tradeMarkLeft = framingRect.left;
//            } else {
//                tradeMarkTop = 10;
//                tradeMarkLeft = canvas.getHeight() - PAINT.getTextSize() - 10;
//            }
//            canvas.drawText(TRADE_MARK_TEXT, tradeMarkLeft, tradeMarkTop, PAINT);
//        }
//    }
//
//
//
//}
